﻿@model  FlyingCircusWebIS.ViewModels.PessoaVM.PessoaIndexVM

@{
    ViewBag.Title = "Pessoas";
}
@section css{
    @Styles.Render("~/Content/css/formulario")
}
<div id="outraspg">

    <h1>Pessoas</h1>

    @using (Html.BeginForm("Index", "Pessoa", FormMethod.Get))
    {       
        <div class="conteudodivs">
            <div class="filtro-listagem-geral">
                <dl class="filtro-listagem">
                    <dd>
                        @Html.LabelFor(m => m.Nome)
                        @Html.TextBoxFor(m => m.Nome)
                    </dd>
                    <dd>
                        @Html.LabelFor(m => m.Email)
                        @Html.TextBoxFor(m => m.Email)
                    </dd>
                    <dd>
                        @Html.LabelFor(m => m.CPF)
                        @Html.TextBoxFor(m => m.CPF)
                    </dd>
                    <dd>
                        @Html.LabelFor(m => m.Sexo)
                        @Html.DropDownListFor(m => m.Sexo, Model.ItensSexo)
                    </dd>
                </dl>
                <input class="enviar" type="submit" value="Filtrar" />
            </div>
        </div>
    }

    @{
        if (Model.TotalRegistros > 0)
        {

        <table class="listagem">
            <tr>
                <th>Nome</th>
                <th class="hide2">CPF</th>
                <th class="hide2">Sexo</th>
                <th>Email</th>
                <th>Especial</th>
                <th class="hide2">Administrador</th>
                <th></th>
            </tr>
            @for (int i = 0; i < Model.Registros.Count; i++)
            {
                    
                <tr>
                    <td>@Model.Registros[i].NomeCompleto</td>
                    <td class="hide2">@Model.Registros[i].CPF</td>
                    <td class="hide2">
                        @if (Model.Registros[i].Sexo.Equals("M"))
                        {
                            <span>Masculino</span>
                        }
                        else
                        {
                            <span>Feminino</span>
                        }
                    </td>
                    <td>
                        @Model.Registros[i].Email
                    </td>
                    @if (Model.Registros[i].DescontoEspecial.Equals("S"))
                    { 
                        <td>Sim</td>
                    }
                    else
                    {
                        <td>Não</td>
                    }
                    @if (Model.Registros[i].NivelPessoa.Equals("A"))
                    { 
                        <td class="hide2">Sim</td>
                    }
                    else
                    {
                        <td class="hide2">Não</td>
                    }
                    <td>
                        @Html.ActionLink("Gerenciar", "Gerenciar", new { id = Model.Registros[i].IdPessoa })
                    </td>
                </tr>
                   
            }
        </table>
    
        <div class="pagedList">
            @Html.PagedListPager(Model.Registros, pagina => Url.Action("Index", new { pagina, nome = Model.Nome, email = Model.Email, cpf = Model.CPF, sexo = Model.Sexo }),
            PagedListRenderOptions.ClassicPlusFirstAndLast)
        </div>
        
        
        }
        else
        {
        <p>Não existe nenhum registro cadastrado.</p>
        }
    }

</div>
@section scripts 
{
    <script type="text/javascript">

        // Armazena o id do registro a ser ativado/desativado
        var idRegistro;

        // Trata o evento onclick da opção de desativar um registro
        function DesativarRegistro(id) {
            idRegistro = id;
            JSMostraDialogConfirmacao("Desativar", "Deseja desativar o registro?", true, RequisitaDesativacaoRegServidor);

        }

        // Trata o evento onclick da opção de ativar um registro
        function AtivarRegistro(id) {
            idRegistro = id;
            JSMostraDialogConfirmacao("Ativar", "Deseja ativar o registro?", true, RequisitaAtivarRegServidor);
        }

        // Trata o evento onclick da opção de remover um registro
        function RemoverRegistro(id) {
            idRegistro = id;
            JSMostraDialogConfirmacao("Remover", "Deseja remover o registro?", true, RequisitaRemoverRegServidor);

        }

        // Efetua uma requisição ao servidor pedindo para remover um registro
        function RequisitaRemoverRegServidor() {
            $.post('@Url.Action("Remover")', { id: idRegistro }, function (data) {
                // Mostra uma notificação de acordo com a resposta do servidor
                if (!data.Erro)
                    JSMostraNotificacaoSucesso(data.Mensagem, false, function () { location.reload(); });
                else
                    JSMostraNotificacaoErro(data.Mensagem, true);
            });
        }

        // Efetua uma requisição ao servidor pedindo para desativar um registro
        function RequisitaDesativacaoRegServidor() {
            $.post('@Url.Action("Desativar")', { id: idRegistro }, function (data) {
                // Mostra uma notificação de acordo com a resposta do servidor
                if (!data.Erro)
                    JSMostraNotificacaoSucesso(data.Mensagem, false, function () { location.reload(); });
                else
                    JSMostraNotificacaoErro(data.Mensagem, true);
            });
        }


        // Efetua uma requisição ao servidor pedindo para ativar um registro
        function RequisitaAtivarRegServidor() {
            $.post('@Url.Action("Ativar")', { id: idRegistro }, function (data) {
                // Mostra uma notificação de acordo com a resposta do servidor
                if (!data.Erro)
                    JSMostraNotificacaoSucesso(data.Mensagem, false, function () { location.reload(); });
                else
                    JSMostraNotificacaoErro(data.Mensagem, true);
            });
        }

        $(document).ready(function () {
            $(".gerenciar").toggleClass("current");
        });

    </script>
}
